package com.kx.service_exam.model;

import com.kx.service_exam.common.model.BaseExample;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class QuestionInfoExample implements BaseExample{
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public QuestionInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table t_question_info
     *
     * @mbggenerated Fri Mar 16 16:20:39 CST 2018
     */
    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeIsNull() {
            addCriterion("question_type is null");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeIsNotNull() {
            addCriterion("question_type is not null");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeEqualTo(Integer value) {
            addCriterion("question_type =", value, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeNotEqualTo(Integer value) {
            addCriterion("question_type <>", value, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeGreaterThan(Integer value) {
            addCriterion("question_type >", value, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeGreaterThanOrEqualTo(Integer value) {
            addCriterion("question_type >=", value, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeLessThan(Integer value) {
            addCriterion("question_type <", value, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeLessThanOrEqualTo(Integer value) {
            addCriterion("question_type <=", value, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeIn(List<Integer> values) {
            addCriterion("question_type in", values, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeNotIn(List<Integer> values) {
            addCriterion("question_type not in", values, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeBetween(Integer value1, Integer value2) {
            addCriterion("question_type between", value1, value2, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_typeNotBetween(Integer value1, Integer value2) {
            addCriterion("question_type not between", value1, value2, "question_type");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoIsNull() {
            addCriterion("question_info is null");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoIsNotNull() {
            addCriterion("question_info is not null");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoEqualTo(String value) {
            addCriterion("question_info =", value, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoNotEqualTo(String value) {
            addCriterion("question_info <>", value, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoGreaterThan(String value) {
            addCriterion("question_info >", value, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoGreaterThanOrEqualTo(String value) {
            addCriterion("question_info >=", value, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoLessThan(String value) {
            addCriterion("question_info <", value, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoLessThanOrEqualTo(String value) {
            addCriterion("question_info <=", value, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoLike(String value) {
            addCriterion("question_info like", value, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoNotLike(String value) {
            addCriterion("question_info not like", value, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoIn(List<String> values) {
            addCriterion("question_info in", values, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoNotIn(List<String> values) {
            addCriterion("question_info not in", values, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoBetween(String value1, String value2) {
            addCriterion("question_info between", value1, value2, "question_info");
            return (Criteria) this;
        }

        public Criteria andQuestion_infoNotBetween(String value1, String value2) {
            addCriterion("question_info not between", value1, value2, "question_info");
            return (Criteria) this;
        }

        public Criteria andAnswerIsNull() {
            addCriterion("answer is null");
            return (Criteria) this;
        }

        public Criteria andAnswerIsNotNull() {
            addCriterion("answer is not null");
            return (Criteria) this;
        }

        public Criteria andAnswerEqualTo(String value) {
            addCriterion("answer =", value, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerNotEqualTo(String value) {
            addCriterion("answer <>", value, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerGreaterThan(String value) {
            addCriterion("answer >", value, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerGreaterThanOrEqualTo(String value) {
            addCriterion("answer >=", value, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerLessThan(String value) {
            addCriterion("answer <", value, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerLessThanOrEqualTo(String value) {
            addCriterion("answer <=", value, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerLike(String value) {
            addCriterion("answer like", value, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerNotLike(String value) {
            addCriterion("answer not like", value, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerIn(List<String> values) {
            addCriterion("answer in", values, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerNotIn(List<String> values) {
            addCriterion("answer not in", values, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerBetween(String value1, String value2) {
            addCriterion("answer between", value1, value2, "answer");
            return (Criteria) this;
        }

        public Criteria andAnswerNotBetween(String value1, String value2) {
            addCriterion("answer not between", value1, value2, "answer");
            return (Criteria) this;
        }

        public Criteria andExam_module_idIsNull() {
            addCriterion("exam_module_id is null");
            return (Criteria) this;
        }

        public Criteria andExam_module_idIsNotNull() {
            addCriterion("exam_module_id is not null");
            return (Criteria) this;
        }

        public Criteria andExam_module_idEqualTo(String value) {
            addCriterion("exam_module_id =", value, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idNotEqualTo(String value) {
            addCriterion("exam_module_id <>", value, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idGreaterThan(String value) {
            addCriterion("exam_module_id >", value, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idGreaterThanOrEqualTo(String value) {
            addCriterion("exam_module_id >=", value, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idLessThan(String value) {
            addCriterion("exam_module_id <", value, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idLessThanOrEqualTo(String value) {
            addCriterion("exam_module_id <=", value, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idLike(String value) {
            addCriterion("exam_module_id like", value, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idNotLike(String value) {
            addCriterion("exam_module_id not like", value, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idIn(List<String> values) {
            addCriterion("exam_module_id in", values, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idNotIn(List<String> values) {
            addCriterion("exam_module_id not in", values, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idBetween(String value1, String value2) {
            addCriterion("exam_module_id between", value1, value2, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andExam_module_idNotBetween(String value1, String value2) {
            addCriterion("exam_module_id not between", value1, value2, "exam_module_id");
            return (Criteria) this;
        }

        public Criteria andAnalysisIsNull() {
            addCriterion("analysis is null");
            return (Criteria) this;
        }

        public Criteria andAnalysisIsNotNull() {
            addCriterion("analysis is not null");
            return (Criteria) this;
        }

        public Criteria andAnalysisEqualTo(String value) {
            addCriterion("analysis =", value, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisNotEqualTo(String value) {
            addCriterion("analysis <>", value, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisGreaterThan(String value) {
            addCriterion("analysis >", value, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisGreaterThanOrEqualTo(String value) {
            addCriterion("analysis >=", value, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisLessThan(String value) {
            addCriterion("analysis <", value, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisLessThanOrEqualTo(String value) {
            addCriterion("analysis <=", value, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisLike(String value) {
            addCriterion("analysis like", value, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisNotLike(String value) {
            addCriterion("analysis not like", value, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisIn(List<String> values) {
            addCriterion("analysis in", values, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisNotIn(List<String> values) {
            addCriterion("analysis not in", values, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisBetween(String value1, String value2) {
            addCriterion("analysis between", value1, value2, "analysis");
            return (Criteria) this;
        }

        public Criteria andAnalysisNotBetween(String value1, String value2) {
            addCriterion("analysis not between", value1, value2, "analysis");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelIsNull() {
            addCriterion("difficulty_level is null");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelIsNotNull() {
            addCriterion("difficulty_level is not null");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelEqualTo(String value) {
            addCriterion("difficulty_level =", value, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelNotEqualTo(String value) {
            addCriterion("difficulty_level <>", value, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelGreaterThan(String value) {
            addCriterion("difficulty_level >", value, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelGreaterThanOrEqualTo(String value) {
            addCriterion("difficulty_level >=", value, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelLessThan(String value) {
            addCriterion("difficulty_level <", value, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelLessThanOrEqualTo(String value) {
            addCriterion("difficulty_level <=", value, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelLike(String value) {
            addCriterion("difficulty_level like", value, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelNotLike(String value) {
            addCriterion("difficulty_level not like", value, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelIn(List<String> values) {
            addCriterion("difficulty_level in", values, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelNotIn(List<String> values) {
            addCriterion("difficulty_level not in", values, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelBetween(String value1, String value2) {
            addCriterion("difficulty_level between", value1, value2, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andDifficulty_levelNotBetween(String value1, String value2) {
            addCriterion("difficulty_level not between", value1, value2, "difficulty_level");
            return (Criteria) this;
        }

        public Criteria andSortIsNull() {
            addCriterion("sort is null");
            return (Criteria) this;
        }

        public Criteria andSortIsNotNull() {
            addCriterion("sort is not null");
            return (Criteria) this;
        }

        public Criteria andSortEqualTo(Integer value) {
            addCriterion("sort =", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotEqualTo(Integer value) {
            addCriterion("sort <>", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThan(Integer value) {
            addCriterion("sort >", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThanOrEqualTo(Integer value) {
            addCriterion("sort >=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThan(Integer value) {
            addCriterion("sort <", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThanOrEqualTo(Integer value) {
            addCriterion("sort <=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortIn(List<Integer> values) {
            addCriterion("sort in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotIn(List<Integer> values) {
            addCriterion("sort not in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortBetween(Integer value1, Integer value2) {
            addCriterion("sort between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotBetween(Integer value1, Integer value2) {
            addCriterion("sort not between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextIsNull() {
            addCriterion("question_context is null");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextIsNotNull() {
            addCriterion("question_context is not null");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextEqualTo(String value) {
            addCriterion("question_context =", value, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextNotEqualTo(String value) {
            addCriterion("question_context <>", value, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextGreaterThan(String value) {
            addCriterion("question_context >", value, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextGreaterThanOrEqualTo(String value) {
            addCriterion("question_context >=", value, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextLessThan(String value) {
            addCriterion("question_context <", value, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextLessThanOrEqualTo(String value) {
            addCriterion("question_context <=", value, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextLike(String value) {
            addCriterion("question_context like", value, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextNotLike(String value) {
            addCriterion("question_context not like", value, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextIn(List<String> values) {
            addCriterion("question_context in", values, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextNotIn(List<String> values) {
            addCriterion("question_context not in", values, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextBetween(String value1, String value2) {
            addCriterion("question_context between", value1, value2, "question_context");
            return (Criteria) this;
        }

        public Criteria andQuestion_contextNotBetween(String value1, String value2) {
            addCriterion("question_context not between", value1, value2, "question_context");
            return (Criteria) this;
        }

        public Criteria andRandom_flagIsNull() {
            addCriterion("random_flag is null");
            return (Criteria) this;
        }

        public Criteria andRandom_flagIsNotNull() {
            addCriterion("random_flag is not null");
            return (Criteria) this;
        }

        public Criteria andRandom_flagEqualTo(Integer value) {
            addCriterion("random_flag =", value, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRandom_flagNotEqualTo(Integer value) {
            addCriterion("random_flag <>", value, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRandom_flagGreaterThan(Integer value) {
            addCriterion("random_flag >", value, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRandom_flagGreaterThanOrEqualTo(Integer value) {
            addCriterion("random_flag >=", value, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRandom_flagLessThan(Integer value) {
            addCriterion("random_flag <", value, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRandom_flagLessThanOrEqualTo(Integer value) {
            addCriterion("random_flag <=", value, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRandom_flagIn(List<Integer> values) {
            addCriterion("random_flag in", values, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRandom_flagNotIn(List<Integer> values) {
            addCriterion("random_flag not in", values, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRandom_flagBetween(Integer value1, Integer value2) {
            addCriterion("random_flag between", value1, value2, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRandom_flagNotBetween(Integer value1, Integer value2) {
            addCriterion("random_flag not between", value1, value2, "random_flag");
            return (Criteria) this;
        }

        public Criteria andRight_numIsNull() {
            addCriterion("right_num is null");
            return (Criteria) this;
        }

        public Criteria andRight_numIsNotNull() {
            addCriterion("right_num is not null");
            return (Criteria) this;
        }

        public Criteria andRight_numEqualTo(Integer value) {
            addCriterion("right_num =", value, "right_num");
            return (Criteria) this;
        }

        public Criteria andRight_numNotEqualTo(Integer value) {
            addCriterion("right_num <>", value, "right_num");
            return (Criteria) this;
        }

        public Criteria andRight_numGreaterThan(Integer value) {
            addCriterion("right_num >", value, "right_num");
            return (Criteria) this;
        }

        public Criteria andRight_numGreaterThanOrEqualTo(Integer value) {
            addCriterion("right_num >=", value, "right_num");
            return (Criteria) this;
        }

        public Criteria andRight_numLessThan(Integer value) {
            addCriterion("right_num <", value, "right_num");
            return (Criteria) this;
        }

        public Criteria andRight_numLessThanOrEqualTo(Integer value) {
            addCriterion("right_num <=", value, "right_num");
            return (Criteria) this;
        }

        public Criteria andRight_numIn(List<Integer> values) {
            addCriterion("right_num in", values, "right_num");
            return (Criteria) this;
        }

        public Criteria andRight_numNotIn(List<Integer> values) {
            addCriterion("right_num not in", values, "right_num");
            return (Criteria) this;
        }

        public Criteria andRight_numBetween(Integer value1, Integer value2) {
            addCriterion("right_num between", value1, value2, "right_num");
            return (Criteria) this;
        }

        public Criteria andRight_numNotBetween(Integer value1, Integer value2) {
            addCriterion("right_num not between", value1, value2, "right_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numIsNull() {
            addCriterion("wrong_num is null");
            return (Criteria) this;
        }

        public Criteria andWrong_numIsNotNull() {
            addCriterion("wrong_num is not null");
            return (Criteria) this;
        }

        public Criteria andWrong_numEqualTo(Integer value) {
            addCriterion("wrong_num =", value, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numNotEqualTo(Integer value) {
            addCriterion("wrong_num <>", value, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numGreaterThan(Integer value) {
            addCriterion("wrong_num >", value, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numGreaterThanOrEqualTo(Integer value) {
            addCriterion("wrong_num >=", value, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numLessThan(Integer value) {
            addCriterion("wrong_num <", value, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numLessThanOrEqualTo(Integer value) {
            addCriterion("wrong_num <=", value, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numIn(List<Integer> values) {
            addCriterion("wrong_num in", values, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numNotIn(List<Integer> values) {
            addCriterion("wrong_num not in", values, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numBetween(Integer value1, Integer value2) {
            addCriterion("wrong_num between", value1, value2, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andWrong_numNotBetween(Integer value1, Integer value2) {
            addCriterion("wrong_num not between", value1, value2, "wrong_num");
            return (Criteria) this;
        }

        public Criteria andDelete_flagIsNull() {
            addCriterion("delete_flag is null");
            return (Criteria) this;
        }

        public Criteria andDelete_flagIsNotNull() {
            addCriterion("delete_flag is not null");
            return (Criteria) this;
        }

        public Criteria andDelete_flagEqualTo(Integer value) {
            addCriterion("delete_flag =", value, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andDelete_flagNotEqualTo(Integer value) {
            addCriterion("delete_flag <>", value, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andDelete_flagGreaterThan(Integer value) {
            addCriterion("delete_flag >", value, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andDelete_flagGreaterThanOrEqualTo(Integer value) {
            addCriterion("delete_flag >=", value, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andDelete_flagLessThan(Integer value) {
            addCriterion("delete_flag <", value, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andDelete_flagLessThanOrEqualTo(Integer value) {
            addCriterion("delete_flag <=", value, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andDelete_flagIn(List<Integer> values) {
            addCriterion("delete_flag in", values, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andDelete_flagNotIn(List<Integer> values) {
            addCriterion("delete_flag not in", values, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andDelete_flagBetween(Integer value1, Integer value2) {
            addCriterion("delete_flag between", value1, value2, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andDelete_flagNotBetween(Integer value1, Integer value2) {
            addCriterion("delete_flag not between", value1, value2, "delete_flag");
            return (Criteria) this;
        }

        public Criteria andCreate_timeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreate_timeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreate_timeEqualTo(Date value) {
            addCriterion("create_time =", value, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreate_timeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreate_timeGreaterThan(Date value) {
            addCriterion("create_time >", value, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreate_timeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreate_timeLessThan(Date value) {
            addCriterion("create_time <", value, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreate_timeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreate_timeIn(List<Date> values) {
            addCriterion("create_time in", values, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreate_timeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreate_timeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreate_timeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "create_time");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNull() {
            addCriterion("creator is null");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNotNull() {
            addCriterion("creator is not null");
            return (Criteria) this;
        }

        public Criteria andCreatorEqualTo(String value) {
            addCriterion("creator =", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotEqualTo(String value) {
            addCriterion("creator <>", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThan(String value) {
            addCriterion("creator >", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThanOrEqualTo(String value) {
            addCriterion("creator >=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThan(String value) {
            addCriterion("creator <", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThanOrEqualTo(String value) {
            addCriterion("creator <=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLike(String value) {
            addCriterion("creator like", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotLike(String value) {
            addCriterion("creator not like", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorIn(List<String> values) {
            addCriterion("creator in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotIn(List<String> values) {
            addCriterion("creator not in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorBetween(String value1, String value2) {
            addCriterion("creator between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotBetween(String value1, String value2) {
            addCriterion("creator not between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andModify_timeIsNull() {
            addCriterion("modify_time is null");
            return (Criteria) this;
        }

        public Criteria andModify_timeIsNotNull() {
            addCriterion("modify_time is not null");
            return (Criteria) this;
        }

        public Criteria andModify_timeEqualTo(Date value) {
            addCriterion("modify_time =", value, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModify_timeNotEqualTo(Date value) {
            addCriterion("modify_time <>", value, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModify_timeGreaterThan(Date value) {
            addCriterion("modify_time >", value, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModify_timeGreaterThanOrEqualTo(Date value) {
            addCriterion("modify_time >=", value, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModify_timeLessThan(Date value) {
            addCriterion("modify_time <", value, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModify_timeLessThanOrEqualTo(Date value) {
            addCriterion("modify_time <=", value, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModify_timeIn(List<Date> values) {
            addCriterion("modify_time in", values, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModify_timeNotIn(List<Date> values) {
            addCriterion("modify_time not in", values, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModify_timeBetween(Date value1, Date value2) {
            addCriterion("modify_time between", value1, value2, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModify_timeNotBetween(Date value1, Date value2) {
            addCriterion("modify_time not between", value1, value2, "modify_time");
            return (Criteria) this;
        }

        public Criteria andModifierIsNull() {
            addCriterion("modifier is null");
            return (Criteria) this;
        }

        public Criteria andModifierIsNotNull() {
            addCriterion("modifier is not null");
            return (Criteria) this;
        }

        public Criteria andModifierEqualTo(String value) {
            addCriterion("modifier =", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierNotEqualTo(String value) {
            addCriterion("modifier <>", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierGreaterThan(String value) {
            addCriterion("modifier >", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierGreaterThanOrEqualTo(String value) {
            addCriterion("modifier >=", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierLessThan(String value) {
            addCriterion("modifier <", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierLessThanOrEqualTo(String value) {
            addCriterion("modifier <=", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierLike(String value) {
            addCriterion("modifier like", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierNotLike(String value) {
            addCriterion("modifier not like", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierIn(List<String> values) {
            addCriterion("modifier in", values, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierNotIn(List<String> values) {
            addCriterion("modifier not in", values, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierBetween(String value1, String value2) {
            addCriterion("modifier between", value1, value2, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierNotBetween(String value1, String value2) {
            addCriterion("modifier not between", value1, value2, "modifier");
            return (Criteria) this;
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table t_question_info
     *
     * @mbggenerated do_not_delete_during_merge Fri Mar 16 16:20:39 CST 2018
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}